

local info = {
    --'自动合成',
    --'自动整理',
    --'物品绑定',
    '伤害显示',
    '友伤显示',
    '自动施法',
    '物品共享',
    '特效开关',
    --'智能施法',
}
local tips = {
    ['自动合成'] = '开启“自动整理”每隔10秒自动合成一次',
    ['自动整理'] = '开启“自动整理”每隔10秒整理一次',
    ['物品共享'] = function(player,open)
        if open then
            player:send_msg('物品锁开启，别的玩家不可以拾取你的物品！')
        else
            player:send_msg('物品锁解除，别的玩家可以拾取你的物品！')
        end
    end,
    ['特效开关'] = function(player,open)
        if open then
            ac.effect.enable()
        else
            ac.effect.disable()
        end
    end,
    
}
ac.wait(100,function()

    ac.each_player(function(player)
        player:set_data('开关-伤害显示',false)
        player:set_data('开关-自动施法',true)
        player:set_data('开关-特效开关',true)
        player:set_data('开关-物品共享',false)
    end)
    ac.game:notify('游戏-刷新开关设置')
    
end)
local w,h = 120,32
local init_x = 1860
local buttons = {}

local ui = class.panel.create('',(1920-w)/2,600,w,h*#info)
ui:hide()
ui:add_frame('tooltip_backdrop1')
ui.buttons = {}
for a,name in ipairs(info) do
    local button = ui:add_button('',0,(a-1)*h,w,h)
    local icon = button:add_panel([[ui\小框.tga]],0,0,h,h)
    button.name = name
    button.open = icon:add_panel([[ui\打勾.tga]],5,5,h-10,h-10)
    button:add_text(name,30,0,w-30,nil,12,4)
    button:set_highlight([[UI\Widgets\BattleNet\bnet-button01-highlight-mouse.blp]])
    ui.buttons[a] = button
end

function ui:on_button_clicked(button)
    if button then
        ac.sync('游戏-设置开关',button.name)
    end
end

function ui:update()
    local player = ac.player.self
    for _,button in ipairs(self.buttons) do
        if player:get_data('开关-'..button.name) then
            button.open:show()
        else
            button.open:hide()
        end
    end
end


local button = class.button.create([[ReplaceableTextures\CommandButtons\BTNEngineeringUpgrade.blp]],20,600,64,64)
button:set_highlight([[UI\Widgets\BattleNet\bnet-button01-highlight-mouse.blp]])
button:add_text('游戏设置',-20,button.h,button.w+40,20,12,5)
ui:set_real_position(button.x + button.w + 30,button.y)

function button:on_button_clicked()
    if ui:is_show() then
        ui:hide()
    else
        ui:show()
    end
end

ac.game:event '游戏-刷新开关设置'(function()
    ui:update()
end)


ac.sync:event '游戏-设置开关'(function(_,player,name)
    local key = '开关-'..name
    local func = tips[name]
    local open = not player:get_data(key)
    player:set_data(key,open)
    if func then
        if type(func)=='string' then
            if open then
                player:send_msg(func)
            end
        else
            func(player,open)
        end
    end
    ac.game:notify('游戏-刷新开关设置')
end)

ac.game:notify('游戏-刷新开关设置')